/*
 * ActionData.h
 *
 *  Created on: Sep 10, 2011
 *      Author: Alex
 */

#ifndef ACTIONDATA_H_
#define ACTIONDATA_H_

class Actor;
#include "../Maths/Point3D.h"

enum ActionType {
	ATTACK,
	ITEM,
	SPELL,
	DEFEND,
	TRANSFORM,
	MOVE,
	WAIT
};

struct ActionData {
	Actor* actor;
	ActionType actionType;
	float timeLeft;
	union {
		Item* item;
		Spell* spell;
	};
	union {
		struct {
			Actor** actors;
			unsigned int groupSize;
		} targetGroup;
		Point3D* targetPoint;
	};
};

#endif /* ACTIONDATA_H_ */
